package com.sqx.modules.cityInfo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 *
 * 城市
 *
 * @author wuChang
 * @since 2024-01-23
 */
@Data
@TableName("city_info")
public class CityInfo implements Serializable {

    private static final long serialVersionUID = 1L;
    @ApiModelProperty("城市id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 城市名称
     */
    @ApiModelProperty("城市名称")
    private String cityName;

    /**
     * 上级id
     */
    @ApiModelProperty("上级id")
    private Long parentId;

    /**
     * 是否启用 1否 2是
     */
    @ApiModelProperty("是否启用 1否 2是")
    private Integer isEnable;
    /**
     * 是否有子节点 1否 2是
     */
    @ApiModelProperty("是否有子节点")
    private Integer hasChildren;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer sort;

    /**
     * 代理用户id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty("代理用户id")
    private Long agentUserId;

    /**
     * 基础公里数
     */
    @ApiModelProperty("基础公里数")
    private BigDecimal baseKilometres;

    /**
     * 基础价格
     */
    @ApiModelProperty("基础价格")
    private BigDecimal baseMoney;

    /**
     * 额外每公里价格(单位:元)
     */
    @ApiModelProperty("额外每公里价格(单位:元)")
    private BigDecimal unitOverMoney;

    /**
     * 每公里费用（22:00~23:59）
     */
    @ApiModelProperty("每公里费用（22:00~23:59）")
    private BigDecimal nightMoney;

    /**
     * 每公里费用（00:00~06:59）
     */
    @ApiModelProperty("每公里费用（00:00~06:59）")
    private BigDecimal earlyMoney;
    /**
     * 每分钟时长费(单位:元)
     */
    @ApiModelProperty("每分钟时长费(单位:元)")
    private BigDecimal minuteMoney;
    /**
     * 平台抽成比例（0.1表示10%）
     */
    @ApiModelProperty("平台抽成比例（0.1表示10%）")
    private BigDecimal pingRate;
    /**
     * 师傅收益默认比例（0.1表示10%）
     */
    @ApiModelProperty("师傅收益默认比例（0.1表示10%）")
    private BigDecimal riderRate;
    /**
     * 等待每分钟价格
     */
    @ApiModelProperty("等待每分钟价格")
    private BigDecimal waitMinuteMoney;
   /**
     * 免费等待时长(分钟)
     */
    @ApiModelProperty("免费等待时长(分钟)")
    private Integer freeWaitTime;

    /**
     * 0不修改 1修改
     */
    @TableField(exist = false)
    @ApiModelProperty("修改默认佣金时,是否同步修改代理城市下所有骑手的分佣比例")
    private int isCover;

    /**
     * 设置代理时间
     */
    @ApiModelProperty("设置代理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime agentTime;
}
